package com.bs.areport.service.basic;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.bs.areport.service.util.DataUtil;
import com.bs.areport.service.util.MethodUtil;
import com.bs.areport.service.util.EntityType;
import com.bs.restframework.context.util.SystemContextUtil;
import com.bs.restframework.db.Database;
import com.bs.restframework.session.UserSession;

/**
 * 
 * <p>函数名称：使用单位服务类</p>
 * <p>创建时间：2012-03-08</p>
 * <p>作者：陈金滨</p>
 */
public class DepartDao {
	
	
	/**
	 * 。。。    
	 * <p>函数名称：getMaxCode</p>
	 * <p>功能说明：获取最大编码值/p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public Map<String, Object> getMaxCode(String code) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);
		Map<String, Object>  resultMap = new HashMap<String, Object>() ;
		String conditon ="" ;
		int level = 1 ;
		Map<String, Object> vMap= null ;
		if(code==null||code.length()==0) //选择树的所有节点，或者未选择到树，获取一级编码
		{
			conditon = " WHERE F_LEVEL=1" ;
			String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE + conditon;
			sql += " ORDER BY TO_NUMBER(F_CODE) DESC" ;
			sql = " SELECT * FROM ( "+sql+" ) WHERE rownum=1";
	        vMap=db.queryObject(Map.class, sql, null);
	        if(vMap==null||"".equals(vMap))
	        {
	        	Map<String, Object>  jcMap = this.getDWJC() ;
				String vJC = (String) jcMap.get("F_ITEM1");
				if(vJC!=null&&"".equals(vJC)==false)
				{
					int j = Integer.parseInt(vJC.substring(0,1));
					String vCode = "" ;
		        	for(int i=0;i<j;i++)
		        	{
		        		vCode += "0" ;
		        	}	        	
		        	vMap = new HashMap<String, Object>() ;
		        	vMap.put("F_CODE", vCode);
				}
	        }
	        resultMap = vMap ;
		}
		else
		{		
			//获取传入编码的级数
			String vSQL = "SELECT F_LEVEL FROM "+EntityType.ARP_BSC_DEPT_TABLE+ " WHERE F_CODE ='"+code+"'" ;
			Map<String, Object> levelMap=db.queryObject(Map.class, vSQL, null);
			Object vle = levelMap.get("F_LEVEL");
			String vLevel = String.valueOf(vle).toString();
			level = Integer.parseInt(vLevel);
			//获取单位级长
			Map<String, Object>  jcMap = this.getDWJC() ;
			String vJC = (String) jcMap.get("F_ITEM1");
			//当传入编码级数小于当前单位级长,取下一级
			if(level<vJC.length())
			{
				conditon = " WHERE F_CODE LIKE '"+code+"%' AND F_LEVEL="+ String.valueOf(level+1).toString();
			}
			else//编码级数大于等于级长。。则取本级
			{
				conditon = " WHERE F_CODE LIKE '"+code+"%' AND F_LEVEL="+ String.valueOf(level).toString();
			}
			conditon +=" ORDER BY TO_NUMBER(F_CODE) DESC " ;
			String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE + conditon;
			sql = " SELECT * FROM ("+sql+") WHERE rownum=1" ;
	        vMap=db.queryObject(Map.class, sql, null);
	        String fCode = "" ;
	        if(vMap==null||vMap.equals(""))
	        {
	        	String vNum = vJC.substring(level,level+1);
	        	int num = Integer.parseInt(vNum);
	        	String vCode = "" ;
	        	for(int i=0;i<num;i++)
	        	{
	        		vCode += "0" ;
	        	}	        	
	        	fCode = code + vCode ;
	        }
	        else
	        {
	        	fCode = (String) vMap.get("F_CODE");	
	        }		        
	        resultMap.put("F_CODE", fCode);
		}		
		
		return resultMap;
	}
	
	/**
	 * 
	 * <p>函数名称：tree</p>
	 * <p>功能说明：使用单位树</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	@SuppressWarnings("unchecked")
	public List<Map> tree(Map<String, Object> valueMap) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);
		
		List<Map> list=DataUtil.getTree(db, valueMap, EntityType.ARP_BSC_DEPT,true,"");
		
		return list;
	}
	
	/**
	 * 
	 * <p>函数名称：userTree</p>
	 * <p>功能说明：用户所属单位树（用户管理模块使用）</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-04-06</p>
	 * <p>作者：陈金滨</p>
	 */
	@SuppressWarnings("unchecked")
	public List<Map> userTree(Map<String, Object> valueMap) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);
		String condition = (String) valueMap.get("Dcon") ;
		valueMap.remove("Dcon");
		List<Map> list=DataUtil.getTree(db, valueMap, EntityType.ARP_BSC_DEPT,true," AND F_STATE=0"+condition);
		
		return list;
	}
	
	/**
	 * 
	 * <p>函数名称：list</p>
	 * <p>功能说明：查询列表</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public Map<String, Object> list(Map<String, Object> objects) throws Exception
	{
		Database db = SystemContextUtil.getDatabase(this);
		String condition = "" ;
		//如果传入 F_NAME 参数，则根据名称 左右模糊查询
		if(objects.get("F_NAME")!=null)
		{
			String name = (String) objects.get("F_NAME") ;
			condition += " AND M.F_NAME LIKE '%"+name+"%' " ;
			objects.remove("F_NAME");
		}
		
		Map<String, Object> resultMap = DataUtil.getListByPage(db, objects, EntityType.ARP_BSC_DEPT,true,true, true,condition);
		
		return resultMap;
	}
	
	/**
	 * 
	 * <p>函数名称：qrylist</p>
	 * <p>功能说明：按编码右模糊查询列表</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-28</p>
	 * <p>作者：陈金滨</p>
	 */
	public Map<String, Object> qrylist(Map<String, Object> objects) throws Exception
	{
		Database db = SystemContextUtil.getDatabase(this);
		//判断是否传入id 如果是 则根据id查询
		String condition = "";
		if(objects.get("F_ID")!=null)
		{
			String ID = (String) objects.get("F_ID");
			condition = " AND F_ID='"+ID+"'";
		}	
		if(objects.get("F_NAME")!=null)
		{
			String name = (String) objects.get("F_NAME") ;
			condition += " AND F_NAME LIKE '"+name+"'% " ;
			objects.remove("F_NAME");
		}
		Map<String, Object> resultMap = DataUtil.getListByPage(db, objects, EntityType.ARP_BSC_DEPT,true, false, true,condition);
		
		return resultMap;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：IsDownDEPTExist</p>
	 * <p>功能说明：判断是否已存在下级单位,存在返回True</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-04-06</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public boolean isDownDEPTExist(String Code) throws Exception
	{	
		boolean result = false ;
		Database db = SystemContextUtil.getDatabase(this);
		
		String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_CODE LIKE '"+Code+"%' AND F_CODE <>'"+Code+"'";
		Map<String, Object> vMap = new HashMap<String, Object>() ;
        vMap= db.queryObject(Map.class, sql, null);
        if((vMap==null)||(vMap.isEmpty()))
        {
        	result=false;
        }
        else
        {
        	result=true ;
        }
		
		return result;
	}		
	
	/**
	 * 
	 * <p>函数名称：edit</p>
	 * <p>功能说明：编辑</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public String edit(Map<String, Object> objects) throws Exception
	{
		String msg = "";

		Database db = SystemContextUtil.getDatabase(this);
		DataUtil.update(db, objects, EntityType.ARP_BSC_DEPT);

		return msg;
	}
	
	/**
	 * 
	 * <p>函数名称：del</p>
	 * <p>功能说明：删除</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public String del(Map<String, Object> objects) throws Exception
	{
		String msg = "";
		
		Database db = SystemContextUtil.getDatabase(this);        
		DataUtil.del(db, objects, EntityType.ARP_BSC_DEPT, false, false);
		
		return msg;
	}
	
	/**
	 * 
	 * <p>函数名称：add</p>
	 * <p>功能说明：添加</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public String add(Map<String, Object> objects) throws Exception
	{
		String msg = "";

		Database db = SystemContextUtil.getDatabase(this);
        DataUtil.add(db, objects, EntityType.ARP_BSC_DEPT);
    
		return msg;
	}
	
	/**
	 * 。。。    
	 * <p>函数名称：initGvndeptid</p>
	 * <p>功能说明：初始化类型下拉框/p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-15</p>
	 * <p>作者：陈金滨</p>
	 */
//	@SuppressWarnings("unchecked")
//	public List<Map> initGvndeptid() throws Exception
//	{	
//		Database db = SystemContextUtil.getDatabase(this);
//		
//		String sql="SELECT F_ID AS \"id\", '[' || F_CODE || ']' || F_NAME AS \"text\" FROM "+EntityType.ARP_BSC_GVNDEPT_TABLE;
//		List<Map>  list=db.queryList(Map.class, sql, null);
//		
//		return list;
//	}
	
	/**
	 * 。。。    
	 * <p>函数名称：getDWJC</p>
	 * <p>功能说明：获取单位编码级长/p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-08</p>
	 * <p>作者：陈金滨</p>
	 */
	public Map<String, Object>  getDWJC() throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);
		String DWJC = MethodUtil.getDeptJC(db) ;
        Map<String, Object> vMap= new HashMap<String, Object>() ;
		vMap.put("F_ITEM1", DWJC);
		return vMap;
	}
	
	/**
	 * 。。。    
	 * <p>函数名称：IsBmExist</p>
	 * <p>功能说明：判断是否已存在编码,编码存在则返回True/p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-19</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public boolean isBmExist(String code) throws Exception
	{	
		boolean result = false ;
		Database db = SystemContextUtil.getDatabase(this);
		if("".equals(code))
		{
			result = true ;
		}
		else
		{
			String sql="SELECT F_CODE FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_CODE='"+code+"'";
			Map<String, Object> vMap = new HashMap<String, Object>() ;   
	        vMap= db.queryObject(Map.class, sql, null);
	        if((vMap==null)||(vMap.isEmpty()))
	        {
	        	result=false;
	        }
	        else
	        {
	        	result=true ;
	        }
		}	
		
		return result;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：changeUpleaf</p>
	 * <p>功能说明：新增或修改后，更改上级节点最细级字段/p>
	 * <p>参数说明：编码（F_CODE）,操作类型<新增，修改，删除></p>
	 * <p>创建时间：2012-03-19</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
	public boolean changeUpleaf(String code,String busType) throws Exception
	{	
		//Code 为当前新增 修改 删除数据的上级编码
		boolean IsSucess = false ;
		String sql = "";
		Database db = SystemContextUtil.getDatabase(this);	
		Map<String, Object> vMap= new HashMap<String, Object>();
		vMap.put("F_CODE", code);
		if(busType=="新增")
		{
			sql="UPDATE "+EntityType.ARP_BSC_DEPT_TABLE+" SET F_ISLEAF=0 WHERE F_CODE='"+code+"'";
			db.update(sql);
			IsSucess = true ;
		}
		else if(busType=="修改")
		{
			String[] ArrayStr = new String[3];
			code = code.replace(",", "");
			ArrayStr = code.split("\\|");
            //ChgCode = IDCODE+"|"+UpbmOld+"|"+Upbm ;
            //更改新编码上级为非叶子节点
            if(ArrayStr[2]!=null||"".equals(ArrayStr[2].trim())!=true)
            {
            	if(ArrayStr[2].trim().equals("")==false)
            	{
            		sql="UPDATE "+EntityType.ARP_BSC_DEPT_TABLE+" SET F_ISLEAF=0 WHERE F_CODE='"+ArrayStr[2].trim()+"'";
        			db.update(sql);	
            	}            		
            }      
            //更改自身为叶子节点
            if(ArrayStr[0]!=null||"".equals(ArrayStr[0].toString())!=true)
            {
            	if(ArrayStr[0].trim().equals("")==false)
            	{
            		if(this.isDownDEPTExist(ArrayStr[0].trim())==false)
            		{
            			sql="UPDATE "+EntityType.ARP_BSC_DEPT_TABLE+" SET F_ISLEAF=1 WHERE F_CODE='"+ArrayStr[0].trim()+"'";
            			db.update(sql);
            		}
            	}				
            }
            //如果旧编码上级已经没有子节点,更改旧编码上级为叶子节点。
            if(ArrayStr[1]!=null||"".equals(ArrayStr[1].toString())!=true)
            {
            	if(ArrayStr[1].trim().equals("")==false)            	
            	{
            		if(this.isDownDEPTExist(ArrayStr[1].trim())==false)
            		{
            			sql="UPDATE "+EntityType.ARP_BSC_DEPT_TABLE+" SET F_ISLEAF=1 WHERE F_CODE='"+ArrayStr[1].trim()+"'";
    	    			db.update(sql);	
            		}   			            	
            	}
            }		    
			IsSucess = true ;
		}
		else if(busType=="删除")
		{		   
		   if(this.isDownDEPTExist(code)==false) //如果不存在同级节点，则将上级单位更改为最细级。
		   {
		       sql = "UPDATE "+EntityType.ARP_BSC_DEPT_TABLE+" SET F_ISLEAF='1' WHERE F_CODE='"+code+"'";
			   db.update(sql);
			   IsSucess = true ;
		   }				
		}
		else{IsSucess= true;}
		
		return IsSucess;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：IsLeaf</p>
	 * <p>功能说明：判断是否最细级,如果是则返回真/p>
	 * <p>参数说明：ID</p>
	 * <p>创建时间：2012-03-19</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public boolean isLeaf(String id) throws Exception
	{	
		boolean result = false ;
		Database db = SystemContextUtil.getDatabase(this);
		
		String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_ID='"+id +"' and F_ISLEAF='1' ";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
        if((vMap == null)||(vMap.isEmpty()))
        {
        	result = false ;
        }
        else
        {
        	result = true ;
        }
        
		return result;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：SiblingNode</p>
	 * <p>功能说明：是否存在同级节点</p>
	 * <p>参数说明：编码（F_CODE）</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
//	public boolean SiblingNode(String code) throws Exception
//	{	
//		boolean Result = false ;
//		String UpBM = this.getUpBM(code);
//		Database db = SystemContextUtil.getDatabase(this);
//		
//		String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_CODE LIKE '"+UpBM +"' and F_CODE<>'"+code+"'";
//        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
//        if((vMap == null)||(vMap.isEmpty()))
//        {
//        	Result = false ;
//        }
//        else
//        {
//        	Result = true ;
//        }
//        
//		return Result;
//	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：getLevel</p>
	 * <p>功能说明：求编码级数,返回值为 -1 表示不符合级长规范</p>
	 * <p>参数说明：code:编码</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public int getLevel(String code) throws Exception
	{	
		int result = -1 ;
		String deptLen = "" ;
		if(code==null||"".equals(code))
			code = "" ;
		Map<String, Object> jcMap = this.getDWJC() ;
		if((jcMap==null)||(jcMap.isEmpty()))
		{
			deptLen = "333" ;
		}
		else
		{
			deptLen = (String) jcMap.get("F_ITEM1") ;
		}
		int temp = 0; 
		int lenJC = deptLen.length(); 
		int lenCODE = code.length();
		
		for(int i=0;i<lenJC;i++)
		{
			temp = temp + Integer.parseInt(deptLen.substring(i, i+1));
			if(lenCODE==temp)
			{
				result = i+1 ;					
			}
		}		
		jcMap.clear();		
		return result;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：getUpBM</p>
	 * <p>功能说明：求上级编码</p>
	 * <p>参数说明：code:编码（F_CODE）</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public String getUpBM(String code) throws Exception
	{	
		String Result = "" ;
		String deptLen = "" ;
		if(code==null||"".equals(code))
			code="";
		Map<String, Object> jcMap = this.getDWJC() ;
		if((jcMap==null)||(jcMap.isEmpty()))
		{
			deptLen = "333" ;
		}
		else
		{
			deptLen = (String) jcMap.get("F_ITEM1") ;
		}
		int temp = 0; int lenJC = deptLen.length(); 
		int UpJS = this.getLevel(code);
		for(int i=0;i<UpJS-1;i++)
		{
			temp = temp + Integer.parseInt(deptLen.substring(i, i+1));
		}		
		Result = code.substring(0,temp);
		return Result;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：getCodeByID</p>
	 * <p>功能说明：通过ID 获取编码</p>
	 * <p>参数说明：id:ID（F_ID）</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public String getCodeByID(String id) throws Exception
	{	
		String result = "" ;
		Database db = SystemContextUtil.getDatabase(this);		
		String sql="SELECT F_CODE FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_ID= '"+id +"'";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
        if((vMap == null)||(vMap.isEmpty()))
        {
        	result = "" ;
        }
        else
        {
        	result = (String) vMap.get("F_CODE") ;
        }		
		return result;
	}
	
	/**
	 * 。。。    
	 * <p>函数名称：getInfoByCode</p>
	 * <p>功能说明：通过编码获取单位信息</p>
	 * <p>参数说明：code:编码</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public Map<String, Object> getInfoByCode(String code) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);		
		String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_CODE= '"+code +"'";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
		return vMap;
	}
	
	/**
	 * 。。。    
	 * <p>函数名称：getInfoByID</p>
	 * <p>功能说明：通过ID 获取单位信息</p>
	 * <p>参数说明：id:ID（F_ID）</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public Map<String, Object> getInfoByID(String id) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);		
		String sql="SELECT * FROM "+EntityType.ARP_BSC_DEPT_TABLE+" WHERE F_ID= '"+id +"'";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
		return vMap;
	}
	
	/**
	 * 。。。    
	 * <p>函数名称：getUserInfoByID</p>
	 * <p>功能说明：通过用户ID获取用户其他信息</p>
	 * <p>参数说明：id:ID（F_ID）</p>
	 * <p>创建时间：2012-03-20</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public Map<String, Object> getUserInfoByID(String id) throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);		
		String sql="SELECT * FROM "+EntityType.SYS_USER_TABLE+" WHERE F_ID= '"+id +"'";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
		return vMap;
	}
	
	
	/**
	 * 。。。    
	 * <p>函数名称：isDeptUsed</p>
	 * <p>功能说明：使用单位信息是否已被使用，被使用则返回true</p>
	 * <p>参数说明：id：ID（F_ID）</p>
	 * <p>创建时间：2012-04-06</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public boolean isDeptUsed(String id) throws Exception
	{	
		boolean result = false ;
		boolean charday = false ;
		boolean charmon = false ;
		Database db = SystemContextUtil.getDatabase(this);	
		//日结表中是否被使用
		String sql="SELECT * FROM "+EntityType.ARP_BUS_CHRGDAY_TABLE+" WHERE F_DEPTID= '"+id +"'";
        Map<String, Object> vMap=db.queryObject(Map.class, sql, null);
        if((vMap == null)||(vMap.isEmpty()))
        {
        	charday = false ;
        }
        else
        {
        	charday = true ;
        }	
        //月结表中是否被使用
		String vsql="SELECT * FROM "+EntityType.ARP_BUS_CHRGMON_TABLE+" WHERE F_DEPTID= '"+id +"'";
        Map<String, Object> vMap2=db.queryObject(Map.class, vsql, null);
        if((vMap == null)||(vMap.isEmpty()))
        {
        	charmon = false ;
        }
        else
        {
        	charmon = true ;
        }    
        if(charday||charmon)
        	result = true ;
		return result;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：getMaxJS</p>
	 * <p>功能说明：或取最大级数</p>
	 * <p>参数说明：</p>
	 * <p>创建时间：2012-03-27</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	@SuppressWarnings("unchecked")
	public Map<String, Object>  getMaxJS() throws Exception
	{	
		Database db = SystemContextUtil.getDatabase(this);		
		String sql="SELECT MAX(F_LEVEL) AS F_LEVEL FROM "+EntityType.ARP_BSC_DEPT_TABLE;
        Map<String, Object> vMap= new HashMap<String, Object>();
        vMap = db.queryObject(Map.class, sql, null);
        if((vMap == null)||(vMap.isEmpty()))
        {
        	vMap.put("F_LEVEL", "0");
        }
		return vMap;
	}	
	
	/**
	 * 。。。    
	 * <p>函数名称：setJC</p>
	 * <p>功能说明：设置级长</p>
	 * <p>参数说明：级长</p>
	 * <p>创建时间：2012-03-27</p>
	 * <p>作者：陈金滨</p>
	 * @param <False>
	 */
	public boolean setJC(String jc) throws Exception
	{	
		boolean result = true ;

		Database db = SystemContextUtil.getDatabase(this);	
		MethodUtil.setDeptJC(db, jc);
		
		return result;
	}
	
}
